<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sort_region [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_regions.html">区域</a> / <a href="toc_regions_transformations.html">变换</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">sort_region</span><span data-if="c" style="display:none;">sort_region</span><span data-if="cpp" style="display:none;">SortRegion</span><span data-if="dotnet" style="display:none;">SortRegion</span><span data-if="python" style="display:none;">sort_region</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">sort_region</span><span data-if="c" style="display:none;">sort_region</span><span data-if="cpp" style="display:none;">SortRegion</span><span data-if="dotnet" style="display:none;">SortRegion</span><span data-if="python" style="display:none;">sort_region</span></code> — Sorting of regions with respect to their relative position.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>sort_region</b>(<a href="#Regions"><i>区域</i></a> : <a href="#SortedRegions"><i>SortedRegions</i></a> : <a href="#SortMode"><i>SortMode</i></a>, <a href="#Order"><i>Order</i></a>, <a href="#RowOrCol"><i>RowOrCol</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>sort_region</b>(const Hobject <a href="#Regions"><i>区域</i></a>, Hobject* <a href="#SortedRegions"><i>SortedRegions</i></a>, const char* <a href="#SortMode"><i>SortMode</i></a>, const char* <a href="#Order"><i>Order</i></a>, const char* <a href="#RowOrCol"><i>RowOrCol</i></a>)</code></p>
<p>
<code>Herror <b>T_sort_region</b>(const Hobject <a href="#Regions"><i>区域</i></a>, Hobject* <a href="#SortedRegions"><i>SortedRegions</i></a>, const Htuple <a href="#SortMode"><i>SortMode</i></a>, const Htuple <a href="#Order"><i>Order</i></a>, const Htuple <a href="#RowOrCol"><i>RowOrCol</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>SortRegion</b>(const HObject&amp; <a href="#Regions"><i>区域</i></a>, HObject* <a href="#SortedRegions"><i>SortedRegions</i></a>, const HTuple&amp; <a href="#SortMode"><i>SortMode</i></a>, const HTuple&amp; <a href="#Order"><i>Order</i></a>, const HTuple&amp; <a href="#RowOrCol"><i>RowOrCol</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HRegion.html">HRegion</a>::<b>SortRegion</b>(const HTuple&amp; <a href="#SortMode"><i>SortMode</i></a>, const HString&amp; <a href="#Order"><i>Order</i></a>, const HString&amp; <a href="#RowOrCol"><i>RowOrCol</i></a>) const</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HRegion.html">HRegion</a>::<b>SortRegion</b>(const HTuple&amp; <a href="#SortMode"><i>SortMode</i></a>, const char* <a href="#Order"><i>Order</i></a>, const char* <a href="#RowOrCol"><i>RowOrCol</i></a>) const</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HRegion.html">HRegion</a>::<b>SortRegion</b>(const HTuple&amp; <a href="#SortMode"><i>SortMode</i></a>, const wchar_t* <a href="#Order"><i>Order</i></a>, const wchar_t* <a href="#RowOrCol"><i>RowOrCol</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>SortRegion</b>(<a href="HObject.html">HObject</a> <a href="#Regions"><i>区域</i></a>, out <a href="HObject.html">HObject</a> <a href="#SortedRegions"><i>sortedRegions</i></a>, <a href="HTuple.html">HTuple</a> <a href="#SortMode"><i>sortMode</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Order"><i>order</i></a>, <a href="HTuple.html">HTuple</a> <a href="#RowOrCol"><i>rowOrCol</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HRegion.html">HRegion</a>.<b>SortRegion</b>(<a href="HTuple.html">HTuple</a> <a href="#SortMode"><i>sortMode</i></a>, string <a href="#Order"><i>order</i></a>, string <a href="#RowOrCol"><i>rowOrCol</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>sort_region</b>(<a href="#Regions"><i>区域</i></a>: HObject, <a href="#SortMode"><i>sort_mode</i></a>: MaybeSequence[Union[int, float, str]], <a href="#Order"><i>order</i></a>: str, <a href="#RowOrCol"><i>row_or_col</i></a>: str) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">sort_region</span><span data-if="c" style="display:none">sort_region</span><span data-if="cpp" style="display:none">SortRegion</span><span data-if="com" style="display:none">SortRegion</span><span data-if="dotnet" style="display:none">SortRegion</span><span data-if="python" style="display:none">sort_region</span></code> sorts the regions
with respect to their relative position.
All sorting methods with the exception of <i><span data-if="hdevelop" style="display:inline">'character'</span><span data-if="c" style="display:none">"character"</span><span data-if="cpp" style="display:none">"character"</span><span data-if="com" style="display:none">"character"</span><span data-if="dotnet" style="display:none">"character"</span><span data-if="python" style="display:none">"character"</span></i>
use one point of the region. With the help of the parameter
<a href="#RowOrCol"><i><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'row'</span><span data-if="c" style="display:none">"row"</span><span data-if="cpp" style="display:none">"row"</span><span data-if="com" style="display:none">"row"</span><span data-if="dotnet" style="display:none">"row"</span><span data-if="python" style="display:none">"row"</span></i> these points will be
sorted according to their row and then according to their
column. By using <i><span data-if="hdevelop" style="display:inline">'column'</span><span data-if="c" style="display:none">"column"</span><span data-if="cpp" style="display:none">"column"</span><span data-if="com" style="display:none">"column"</span><span data-if="dotnet" style="display:none">"column"</span><span data-if="python" style="display:none">"column"</span></i>, the column value will
be used first.
The following values are available for the parameter
<a href="#SortMode"><i><code><span data-if="hdevelop" style="display:inline">SortMode</span><span data-if="c" style="display:none">SortMode</span><span data-if="cpp" style="display:none">SortMode</span><span data-if="com" style="display:none">SortMode</span><span data-if="dotnet" style="display:none">sortMode</span><span data-if="python" style="display:none">sort_mode</span></code></i></a>:
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'character'</span><span data-if="c" style="display:none">"character"</span><span data-if="cpp" style="display:none">"character"</span><span data-if="com" style="display:none">"character"</span><span data-if="dotnet" style="display:none">"character"</span><span data-if="python" style="display:none">"character"</span></i></b></dt>
<dd>
<p>

The regions are treated like characters, which can be read
horizontally or vertically. They are sorted according
to the reading direction given by <a href="#RowOrCol"><i><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></i></a> with
the following specifications:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'row'</span><span data-if="c" style="display:none">"row"</span><span data-if="cpp" style="display:none">"row"</span><span data-if="com" style="display:none">"row"</span><span data-if="dotnet" style="display:none">"row"</span><span data-if="python" style="display:none">"row"</span></i>: Regarded as rows, the reading
direction is firstly from left to right and then from
top to bottom.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'column'</span><span data-if="c" style="display:none">"column"</span><span data-if="cpp" style="display:none">"column"</span><span data-if="com" style="display:none">"column"</span><span data-if="dotnet" style="display:none">"column"</span><span data-if="python" style="display:none">"column"</span></i>: Regarded as columns, the reading
direction is firstly from top to bottom and then from left
to right.
</p>
</li>
</ul>
<p>
For <a href="#SortMode"><i><code><span data-if="hdevelop" style="display:inline">SortMode</span><span data-if="c" style="display:none">SortMode</span><span data-if="cpp" style="display:none">SortMode</span><span data-if="com" style="display:none">SortMode</span><span data-if="dotnet" style="display:none">sortMode</span><span data-if="python" style="display:none">sort_mode</span></code></i></a> <i><span data-if="hdevelop" style="display:inline">'character'</span><span data-if="c" style="display:none">"character"</span><span data-if="cpp" style="display:none">"character"</span><span data-if="com" style="display:none">"character"</span><span data-if="dotnet" style="display:none">"character"</span><span data-if="python" style="display:none">"character"</span></i>, a second numeric value
can be passed to <a href="#SortMode"><i><code><span data-if="hdevelop" style="display:inline">SortMode</span><span data-if="c" style="display:none">SortMode</span><span data-if="cpp" style="display:none">SortMode</span><span data-if="com" style="display:none">SortMode</span><span data-if="dotnet" style="display:none">sortMode</span><span data-if="python" style="display:none">sort_mode</span></code></i></a> in addition to <i><span data-if="hdevelop" style="display:inline">'character'</span><span data-if="c" style="display:none">"character"</span><span data-if="cpp" style="display:none">"character"</span><span data-if="com" style="display:none">"character"</span><span data-if="dotnet" style="display:none">"character"</span><span data-if="python" style="display:none">"character"</span></i>.
This value specifies the maximum percentage of overlap. This overlap
depends on the parameter <a href="#RowOrCol"><i><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></i></a> and is determined as
follows:
</p>
<ul>
<li>
<p> <a href="#RowOrCol"><i><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'row'</span><span data-if="c" style="display:none">"row"</span><span data-if="cpp" style="display:none">"row"</span><span data-if="com" style="display:none">"row"</span><span data-if="dotnet" style="display:none">"row"</span><span data-if="python" style="display:none">"row"</span></i>: overlap of row coordinates
between two regions
</p>
</li>
<li>
<p> <a href="#RowOrCol"><i><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'column'</span><span data-if="c" style="display:none">"column"</span><span data-if="cpp" style="display:none">"column"</span><span data-if="com" style="display:none">"column"</span><span data-if="dotnet" style="display:none">"column"</span><span data-if="python" style="display:none">"column"</span></i>: overlap of column
coordinates between two regions,
</p>
</li>
</ul>
<p>
whereas the percentage of overlap is calculated using the smaller one
of the overlapping regions (with respect to the specified axis).
Regions that do not overlap in their coordinates or have an overlap
of less than the set percentage are seen as being in different rows
(or columns, respectively) and sorted accordingly. In case the overlap
is larger, the regions are seen as being in the same row (or column)
instead and therefore sorted within the row (or column). For example
when this additional parameter is set to 0, all regions that overlap
in their row (or column) coordinates are sorted within the same row
(or column). The default value of this parameter is 15 which means
that adjacent rows (or columns) can have an overlap of maximum 15%
in order to be considered as different rows (or columns).
Note that for <a href="#Order"><i><code><span data-if="hdevelop" style="display:inline">Order</span><span data-if="c" style="display:none">Order</span><span data-if="cpp" style="display:none">Order</span><span data-if="com" style="display:none">Order</span><span data-if="dotnet" style="display:none">order</span><span data-if="python" style="display:none">order</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, the characters
are sorted in a reversed order to the one described above.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'first_point'</span><span data-if="c" style="display:none">"first_point"</span><span data-if="cpp" style="display:none">"first_point"</span><span data-if="com" style="display:none">"first_point"</span><span data-if="dotnet" style="display:none">"first_point"</span><span data-if="python" style="display:none">"first_point"</span></i></b></dt>
<dd>
<p>

The point with the lowest column value in the first row
of the region.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'last_point'</span><span data-if="c" style="display:none">"last_point"</span><span data-if="cpp" style="display:none">"last_point"</span><span data-if="com" style="display:none">"last_point"</span><span data-if="dotnet" style="display:none">"last_point"</span><span data-if="python" style="display:none">"last_point"</span></i></b></dt>
<dd>
<p>

The point with the highest column value in the last row
of the region.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'upper_left'</span><span data-if="c" style="display:none">"upper_left"</span><span data-if="cpp" style="display:none">"upper_left"</span><span data-if="com" style="display:none">"upper_left"</span><span data-if="dotnet" style="display:none">"upper_left"</span><span data-if="python" style="display:none">"upper_left"</span></i></b></dt>
<dd>
<p>

Upper left corner of the surrounding rectangle.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'upper_right'</span><span data-if="c" style="display:none">"upper_right"</span><span data-if="cpp" style="display:none">"upper_right"</span><span data-if="com" style="display:none">"upper_right"</span><span data-if="dotnet" style="display:none">"upper_right"</span><span data-if="python" style="display:none">"upper_right"</span></i></b></dt>
<dd>
<p>

Upper right corner of the surrounding rectangle.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'lower_left'</span><span data-if="c" style="display:none">"lower_left"</span><span data-if="cpp" style="display:none">"lower_left"</span><span data-if="com" style="display:none">"lower_left"</span><span data-if="dotnet" style="display:none">"lower_left"</span><span data-if="python" style="display:none">"lower_left"</span></i></b></dt>
<dd>
<p>

Lower left corner of the surrounding rectangle.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'lower_right'</span><span data-if="c" style="display:none">"lower_right"</span><span data-if="cpp" style="display:none">"lower_right"</span><span data-if="com" style="display:none">"lower_right"</span><span data-if="dotnet" style="display:none">"lower_right"</span><span data-if="python" style="display:none">"lower_right"</span></i></b></dt>
<dd>
<p>

Lower right corner of the surrounding rectangle.
</p>
</dd>
</dl>
<p>The parameter <a href="#Order"><i><code><span data-if="hdevelop" style="display:inline">Order</span><span data-if="c" style="display:none">Order</span><span data-if="cpp" style="display:none">Order</span><span data-if="com" style="display:none">Order</span><span data-if="dotnet" style="display:none">order</span><span data-if="python" style="display:none">order</span></code></i></a> determines whether the
sorting order is increasing or decreasing: using
<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> the order will be increasing, using
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> the order will be decreasing.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Regions" class="parname"><b><code><span data-if="hdevelop" style="display:inline">区域</span><span data-if="c" style="display:none">区域</span><span data-if="cpp" style="display:none">区域</span><span data-if="com" style="display:none">区域</span><span data-if="dotnet" style="display:none">区域</span><span data-if="python" style="display:none">区域</span></code></b> (input_object)  </span><span>region-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">Regions to be sorted.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SortedRegions" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SortedRegions</span><span data-if="c" style="display:none">SortedRegions</span><span data-if="cpp" style="display:none">SortedRegions</span><span data-if="com" style="display:none">SortedRegions</span><span data-if="dotnet" style="display:none">sortedRegions</span><span data-if="python" style="display:none">sorted_regions</span></code></b> (output_object)  </span><span>region-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject *</span></span>
</div>
<p class="pardesc">Sorted regions.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SortMode" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SortMode</span><span data-if="c" style="display:none">SortMode</span><span data-if="cpp" style="display:none">SortMode</span><span data-if="com" style="display:none">SortMode</span><span data-if="dotnet" style="display:none">sortMode</span><span data-if="python" style="display:none">sort_mode</span></code></b> (input_control)  </span><span>tuple(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Kind of sorting.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'first_point'</span>
    <span data-if="c" style="display:none">"first_point"</span>
    <span data-if="cpp" style="display:none">"first_point"</span>
    <span data-if="com" style="display:none">"first_point"</span>
    <span data-if="dotnet" style="display:none">"first_point"</span>
    <span data-if="python" style="display:none">"first_point"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'character'</span><span data-if="c" style="display:none">"character"</span><span data-if="cpp" style="display:none">"character"</span><span data-if="com" style="display:none">"character"</span><span data-if="dotnet" style="display:none">"character"</span><span data-if="python" style="display:none">"character"</span>, <span data-if="hdevelop" style="display:inline">'first_point'</span><span data-if="c" style="display:none">"first_point"</span><span data-if="cpp" style="display:none">"first_point"</span><span data-if="com" style="display:none">"first_point"</span><span data-if="dotnet" style="display:none">"first_point"</span><span data-if="python" style="display:none">"first_point"</span>, <span data-if="hdevelop" style="display:inline">'last_point'</span><span data-if="c" style="display:none">"last_point"</span><span data-if="cpp" style="display:none">"last_point"</span><span data-if="com" style="display:none">"last_point"</span><span data-if="dotnet" style="display:none">"last_point"</span><span data-if="python" style="display:none">"last_point"</span>, <span data-if="hdevelop" style="display:inline">'lower_left'</span><span data-if="c" style="display:none">"lower_left"</span><span data-if="cpp" style="display:none">"lower_left"</span><span data-if="com" style="display:none">"lower_left"</span><span data-if="dotnet" style="display:none">"lower_left"</span><span data-if="python" style="display:none">"lower_left"</span>, <span data-if="hdevelop" style="display:inline">'lower_right'</span><span data-if="c" style="display:none">"lower_right"</span><span data-if="cpp" style="display:none">"lower_right"</span><span data-if="com" style="display:none">"lower_right"</span><span data-if="dotnet" style="display:none">"lower_right"</span><span data-if="python" style="display:none">"lower_right"</span>, <span data-if="hdevelop" style="display:inline">'upper_left'</span><span data-if="c" style="display:none">"upper_left"</span><span data-if="cpp" style="display:none">"upper_left"</span><span data-if="com" style="display:none">"upper_left"</span><span data-if="dotnet" style="display:none">"upper_left"</span><span data-if="python" style="display:none">"upper_left"</span>, <span data-if="hdevelop" style="display:inline">'upper_right'</span><span data-if="c" style="display:none">"upper_right"</span><span data-if="cpp" style="display:none">"upper_right"</span><span data-if="com" style="display:none">"upper_right"</span><span data-if="dotnet" style="display:none">"upper_right"</span><span data-if="python" style="display:none">"upper_right"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Order" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Order</span><span data-if="c" style="display:none">Order</span><span data-if="cpp" style="display:none">Order</span><span data-if="com" style="display:none">Order</span><span data-if="dotnet" style="display:none">order</span><span data-if="python" style="display:none">order</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Increasing or decreasing sorting order.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'true'</span>
    <span data-if="c" style="display:none">"true"</span>
    <span data-if="cpp" style="display:none">"true"</span>
    <span data-if="com" style="display:none">"true"</span>
    <span data-if="dotnet" style="display:none">"true"</span>
    <span data-if="python" style="display:none">"true"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="RowOrCol" class="parname"><b><code><span data-if="hdevelop" style="display:inline">RowOrCol</span><span data-if="c" style="display:none">RowOrCol</span><span data-if="cpp" style="display:none">RowOrCol</span><span data-if="com" style="display:none">RowOrCol</span><span data-if="dotnet" style="display:none">rowOrCol</span><span data-if="python" style="display:none">row_or_col</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Sorting first with respect to row, then to column.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'row'</span>
    <span data-if="c" style="display:none">"row"</span>
    <span data-if="cpp" style="display:none">"row"</span>
    <span data-if="com" style="display:none">"row"</span>
    <span data-if="dotnet" style="display:none">"row"</span>
    <span data-if="python" style="display:none">"row"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'column'</span><span data-if="c" style="display:none">"column"</span><span data-if="cpp" style="display:none">"column"</span><span data-if="com" style="display:none">"column"</span><span data-if="dotnet" style="display:none">"column"</span><span data-if="python" style="display:none">"column"</span>, <span data-if="hdevelop" style="display:inline">'row'</span><span data-if="c" style="display:none">"row"</span><span data-if="cpp" style="display:none">"row"</span><span data-if="com" style="display:none">"row"</span><span data-if="dotnet" style="display:none">"row"</span><span data-if="python" style="display:none">"row"</span></p>
</div>
<div data-if="hdevelop" style="display:inline">
</div>
<div data-if="c" style="display:none">
</div>
<div data-if="cpp" style="display:none">
</div>
<div data-if="com" style="display:none">
</div>
<div data-if="dotnet" style="display:none">
</div>
<h2 id="sec_result">结果</h2>
<p>If the parameters are correct, 该算子
<code><span data-if="hdevelop" style="display:inline">sort_region</span><span data-if="c" style="display:none">sort_region</span><span data-if="cpp" style="display:none">SortRegion</span><span data-if="com" style="display:none">SortRegion</span><span data-if="dotnet" style="display:none">SortRegion</span><span data-if="python" style="display:none">sort_region</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .
Otherwise an exception will be raised.</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="do_ocr_multi_class_mlp.html"><span data-if="hdevelop" style="display:inline">do_ocr_multi_class_mlp</span><span data-if="c" style="display:none">do_ocr_multi_class_mlp</span><span data-if="cpp" style="display:none">DoOcrMultiClassMlp</span><span data-if="com" style="display:none">DoOcrMultiClassMlp</span><span data-if="dotnet" style="display:none">DoOcrMultiClassMlp</span><span data-if="python" style="display:none">do_ocr_multi_class_mlp</span></a></code>, 
<code><a href="do_ocr_single_class_mlp.html"><span data-if="hdevelop" style="display:inline">do_ocr_single_class_mlp</span><span data-if="c" style="display:none">do_ocr_single_class_mlp</span><span data-if="cpp" style="display:none">DoOcrSingleClassMlp</span><span data-if="com" style="display:none">DoOcrSingleClassMlp</span><span data-if="dotnet" style="display:none">DoOcrSingleClassMlp</span><span data-if="python" style="display:none">do_ocr_single_class_mlp</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
